package com.zenithmind.version.pojo.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.util.List;

/**
 * 合并请求创建DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@Schema(description = "合并请求创建DTO")
public class MergeRequestCreateDTO {

    /**
     * 仓库ID
     */
    @NotBlank(message = "仓库ID不能为空")
    @Schema(description = "仓库ID")
    private String repositoryId;

    /**
     * 标题
     */
    @NotBlank(message = "标题不能为空")
    @Schema(description = "标题")
    private String title;

    /**
     * 描述
     */
    @Schema(description = "描述")
    private String description;

    /**
     * 源分支
     */
    @NotBlank(message = "源分支不能为空")
    @Schema(description = "源分支")
    private String sourceBranch;

    /**
     * 目标分支
     */
    @NotBlank(message = "目标分支不能为空")
    @Schema(description = "目标分支")
    private String targetBranch;

    /**
     * 指派人ID
     */
    @Schema(description = "指派人ID")
    private String assigneeId;

    /**
     * 审核者ID列表
     */
    @Schema(description = "审核者ID列表")
    private List<String> reviewerIds;

    /**
     * 标签列表
     */
    @Schema(description = "标签列表")
    private List<String> labels;

    /**
     * 里程碑
     */
    @Schema(description = "里程碑")
    private String milestone;

    /**
     * 是否删除源分支
     */
    @Schema(description = "是否删除源分支")
    private Boolean deleteSourceBranch;

    /**
     * 是否压缩提交
     */
    @Schema(description = "是否压缩提交")
    private Boolean squashCommits;

    /**
     * 状态
     */
    @Schema(description = "状态")
    private Integer status;
}
